iT邦幫忙

0

Day 43、44 (PHP)

  • 分享至 

  • xImage
  •  

1.製作會員登入系統

(1)資料庫密碼欄位給多記憶體>>因為要進行編碼
正常來說密碼不應該查詢的到,很危險(忌諱!!)
https://ithelp.ithome.com.tw/upload/images/20210808/20137684R2MjEADKNg.png

(2)第三方驗證與這邊無關(ex:google登入、手機驗證)
第三方只是幫忙驗證,自家資料庫還是要新增資料

(3)編碼及驗證

    $passwd = '123456';

    //編碼處理
    //password_hash(拿這個,使用演算法加密)
    $passwd2 = password_hash($passwd, PASSWORD_DEFAULT);
    
    //password_verify 驗證(正確的,別人輸入的)
    if (password_verify('1234567', $passwd2)) {
        echo 'OK';
    } else {
        echo 'XX';
    }

2.資料庫資料更改唯獨,就不會有重複

例:使用者帳號
但,通常使用者填完表單送出時才能驗證到
UX體驗差,請做到輸入時就已告知帳號重複
https://ithelp.ithome.com.tw/upload/images/20210808/20137684yTwxYezR4g.png
利用AJAX


3.AJAX

(舉例:看股票頁面,隨時更新,而不更動頁面)
Read data from a web server - after the page has loaded
Update a web page without reloading the page
Send data to a web server - in the background

https://www.w3schools.com/js/js_ajax_intro.asp


4.判斷帳號重複不能註冊(輸入完即得知)

    //1.抓帳號
    if (!isset($_GET['account'])) return;
    //2.收下資料
    $account = $_GET['account'];

    //3.引用MySQL物件
    include('bradsql.php');
    

    //4.SQL 條件式  檢查 條件:拿到資料,帳號有重複 
    $sql = "SELECT account FROM member WHERE account = '{$account}'";
    $result = $mysqli->query($sql);
    $rows = $result->num_rows;
    //查出有幾筆資料?
    echo $rows > 0 ? '帳號重複了,不能註冊' : '';

5.判斷帳號有無重複(送出後得知)

創造AJAX物件

   const xhttp = new XMLHttpRequest(); //創造AJAX物件    

onsubmit 只接受true(送出) or false(沒送出)

  <form method="post" action="brad64.php" onsubmit="return cheakForm();">
  <input type="submit" value="Register" />
      var isCheckOK = false;     //1.給onsubmit的booling

      function cheakAccount() {
          isCheckOK = false;     /2.送出去(onsubmit)前都是false
      }

      function aftercheak() {
          if (this.readyState == 4 && this.status == 200) {
              getmesg = xhttp.responseText.trim();        //3.讓物件的內容清乾淨

              document.getElementById("mesg").innerHTML = getmesg; 
              //4.Elemen的內容'' ,如果有東西會蓋上去物件的內容

              if (getmesg == 0) {                          //5.長度為0

                  isCheckOK = true;    //6.才會送出true,送出去(onsubmit)前都是false
              }
          }

      function cheakForm() {
          return isCheckOK;        //7.TURE 送出 action="brad64.php"
      }

3.會員登入、註冊

影片PHP09.mp4 1:13
reg.php
login.php
newAccount.php
checkAccount.php
editAccount.php
https://ithelp.ithome.com.tw/upload/images/20210808/201376846KXQXtaLSY.png


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言